Getting Started
Foreword Game development is the intersection of a variety of fields. The role of a game developer may involve work in a number of these fields, or more commonly in a team setting, a specialized subset of a particular field (AI programmer, sprite artist, and so on). Every game involves at the very least programming and some kind of content, however minimal. Independent game developers may end up filling many roles in the process. Ultimately to become successful as a programmer, composer, artist, or writer one must start small. Take the time to learn the basics of your field before attempting any projects. Gain experience through practice and seek input from others in your field to assess your progress and provide direction. The focus of this article is on providing information specifically about the process of getting started with game development, not necessarily the process of developing a single game. Content Development Content for games spans a variety of media, including but not limited to 2D and 3D art, animation, sound, and storylines. Progress in each of these extensive fields follows the same outline: learn the basics, start small, and gain skills through practice. It's important to note that skills in these areas are not specific to games. Projects that are unrelated to games will help you gain experience and broaden your horizons. Consider joining a community such as DeviantArt to showcase your work and cultivate your skills. As a content developer it may be easier and more beneficial to get involved in team projects appropriate to your skill level. Programming The role of a programmer within game development is to bring together a number of systems, including graphics, sound, human interface, and networking to bring a game idea to life. It is a programmer's job to coordinate every operation within the game, from displaying things on the screen and loading files from disk to calculating the next move or communicating online. In a general sense, a programmer accomplishes this by writing code in a programming language which tells the computer how to behave in given situations. Keep in mind that there is nothing special about game programming. Like content development skills, programming skills are game-agnostic; experience you gain developing applications completely unrelated to games will help you become a better programmer and thus a better game programmer. See Picking a Language for advice on choosing a language to start out with. Ideas There is one obvious fact that many novice game developers seem to lose sight of: everyone has ideas. Everyone has ideas they think are great. Ideas alone are not particularly valuable. Ideas on paper may be slightly more valuable, especially if they're completely fleshed out with all the details filled in, but unfortunately the vast majority of ideas floating around, especially among beginners, are vague and grandiose and ultimately impossible to get off the around. An "idea person" is, unsurprisingly, not a role on any effective game development team because the act of coming up with ideas has no intrinsic value. The value comes from effectively communicating those ideas and skillfully implementing them. Writing skills in particular will help you to communicate your ideas to teammates and clarify them for your own benefit. It helps to write a design document to organize your ideas and keep sight of your goals. Why can't I sell my idea? To the disappointment of many aspiring game developers, ideas, even fully explored ideas with all the details filled in, are not likely to be picked up by any game companies or teams, especially in exchange for money. It is particularly risky for companies to even read submitted ideas, specifically because it puts them on the hook for infringing on your intellectual property. For this reason most companies won't even look at your ideas, much less read or accept any ideas submitted to them. Beside the legal ramifications, and as mentioned above, everyone has their own ideas. Nobody out there is looking for ideas to implement because they ran out; they're all working on their own projects with their own clear ideas of how they want their games to turn out. Realistic Plans Another hangup of beginners tends to be overzealous and unrealistic expectations of what they can accomplish, especially early on. Many beginners want to develop the next great MMORPG without having any experience, programming or otherwise. Unfortunately these types of games require teams of experts, multiple months (or years) of development time, and many millions of dollars to produce. Even with an impeccable design document no beginner can hope to achieve such a goal without extensive skills. One of the best skills for a beginner to possess is a realistic sense of what can be accomplished. Learn to analyze the skills necessary to bring your vision to life while understanding the skills you have and the skills you do not have. Deceiving yourself and others at any stage will only hinder your progress and delay your goals. Starting Small After you've learned the basic skills in your particular field experience is usually gained by taking up projects, either independently or on a team. For programmers it's usually best to work on smaller games independently. Start out with simple text-based games like Guess the Number or Hangman, and progressively work your way up through graphics-based games such as Tetris clones, platformers, Pac-Man, or other similar small-scale projects. Keep working on larger and more challenging projects to expand your skill set and gain experience, but know what you're capable of and whether you're getting in too deep. More Advanced Games Larger projects and team projects may require more extensive planning than small individual projects. It's important at this point to be well aware of your own limitations and to have clear goals in mind. Design documents are invaluable, and will help you keep sight of your initial goal and identify the steps necessary to achieve it. Category:For Beginners